package com.bird.设计原则.依赖倒置原则;

/**
 * @data 2022/1/2 12:41
 * @author: bird
 * @description: 低层模块 业务层 声明一个业务层
 */

public class Body {
    public Body() {
    }

    /*******************V1 start********************************88*/
    public void studyJavaCourse() {
        System.out.println("小明在慕课网学习Java课程");
    }

    public void studyFGCourse() {
        System.out.println("小明在慕课网学习前端课程");
    }

    public void studyPythonCourse() {
        System.out.println("小明在慕课网学习Python课程");
    }

/*********************V1 end************************************/

    /*******************V2 start* 接口方法注入********************************/
    // 这个是通过解耦方法的方式 注入实现类
    public void studyCourse(ICourse course) {
        course.studyCourse();
    }
    /*****************V2 end***********************************/

    /******************V3 start  构造器注入********************************/
    private ICourse course;

    public Body(ICourse course){
        this.course=course;
    }
    public void studyCourse() {
        course.studyCourse();
    }
    /*********************V3 end 构造器注入*****************************/


    /*****************V4 start set方式的注入 单例模式******************8888*/

    public void setCourse(ICourse course) {
        this.course = course;
    }
}



